package parse

import (
	"github.com/BurntSushi/toml"
	"log"
	"os"
	"path/filepath"
)

func EncoderToml[T any](t T, configPath string) {
	err := os.MkdirAll(filepath.Dir(configPath), os.ModePerm)
	if err != nil {
		log.Fatal("Create Dir:", err)
		return
	}
	file, err := os.Create(configPath)
	if err != nil {
		log.Fatal("Create File:", err)
		return
	}
	defer file.Close()
	encode := toml.NewEncoder(file)
	if err = encode.Encode(t); err != nil {
		panic(err)
	}

}
func DecodeTomlFile[T any](configPath string) *T {
	if _, err := os.Stat(configPath); err != nil {
		configPath = "../config/config.toml"
	}
	var config T
	_, err := toml.DecodeFile(configPath, &config)
	if err != nil {
		log.Fatal(err, "DecodeTomlFile")
		os.Exit(1)
	}

	return &config
}
